/* 
 * File:   Constante.cpp
 * Author: Gab'z
 * 
 * Created on 4 mai 2012, 22:55
 */

#include "Constante.h"
#include "Expression.h"

Constante::~Constante() {
}

////std::ostream& operator<<(std::ostream& F, const Constante& c) {
////    c.print(F);
////    return F;
////}

//Constante* add(const Constante* c1, const Constante* c2) {
//    const Nombre* p_nombre1 = dynamic_cast<const Nombre*> (c1);
//    const Nombre* p_nombre2 = dynamic_cast<const Nombre*> (c2);
//    const Expression* p_nbr1 = dynamic_cast<const Expression*> (c1);
//    const Expression* p_nbr2 = dynamic_cast<const Expression*> (c2);
//    if (p_nbr1 != 0 | p_nbr2 != 0) return new Expression(p_nbr1->toString() + " " + p_nbr2->toString() + " +");
//    else return add(p_nombre1, p_nombre2);
//}
//Constante* sub(const Constante* c1, const Constante* c2){
//    const Nombre* p_nombre1 = dynamic_cast<const Nombre*> (c1);
//    const Nombre* p_nombre2 = dynamic_cast<const Nombre*> (c2);
//    const Expression* p_nbr1 = dynamic_cast<const Expression*> (c1);
//    const Expression* p_nbr2 = dynamic_cast<const Expression*> (c2);
//    if (p_nbr1 != 0 | p_nbr2 != 0) return new Expression(p_nbr1->toString() + " " + p_nbr2->toString() + " -");
//    else return sub(p_nombre1, p_nombre2);
//}
//Constante* mul(const Constante* c1, const Constante* c2){
//    const Nombre* p_nombre1 = dynamic_cast<const Nombre*> (c1);
//    const Nombre* p_nombre2 = dynamic_cast<const Nombre*> (c2);
//    const Expression* p_nbr1 = dynamic_cast<const Expression*> (c1);
//    const Expression* p_nbr2 = dynamic_cast<const Expression*> (c2);
//    if (p_nbr1 != 0 | p_nbr2 != 0) return new Expression(p_nbr1->toString() + " " + p_nbr2->toString() + " *");
//    else return mul(p_nombre1, p_nombre2);
//}
//Constante* div(const Constante* c1, const Constante* c2){
//    const Nombre* p_nombre1 = dynamic_cast<const Nombre*> (c1);
//    const Nombre* p_nombre2 = dynamic_cast<const Nombre*> (c2);
//    const Expression* p_nbr1 = dynamic_cast<const Expression*> (c1);
//    const Expression* p_nbr2 = dynamic_cast<const Expression*> (c2);
//    if (p_nbr1 != 0 | p_nbr2 != 0) return new Expression(p_nbr1->toString() + " " + p_nbr2->toString() + " /");
//    else return div(p_nombre1, p_nombre2);
//}